package com.timguan.render.web.common;

import com.timguan.render.service.common.B2CMallConstants;

import java.util.HashSet;
import java.util.Set;

/**
 * Created by guankaiqiang on 2015/1/23.
 * 不同的domain对应到不同的appId，在渲染行为以及数据结果集都有区别。后面可以考虑将此作为配置项。
 */
public enum App {
    B2CPC(new HashSet<String>() {
        {
            add("www.tepin.hk");
            add("www.tepin.com");
        }
    }, B2CMallConstants.B2C_PC_APPID),
    B2CH5(new HashSet<String>() {
        {
            add("m.tepin.hk");
            add("m.tepin.com");
        }
    }, B2CMallConstants.B2C_H5_APPID),
    B2C_ANDORID(new HashSet<String>() {
    }, B2CMallConstants.B2C_ANDROID_APPID),
    B2C_IOS(new HashSet<String>() {
    }, B2CMallConstants.B2C_IOS_APPID);
    private Set<String> domains;
    private int         appid;

    /**
     * @param domains app对应的域名
     * @param appid   app对应的Id
     */
    App(Set<String> domains, int appid) {
        this.domains = domains;
        this.appid = appid;
    }

    public Set<String> getDomains() {
        return domains;
    }

    public int getAppid() {
        return appid;
    }

    public static App parseHost(String requestHost) {
        for (App value : App.values()) {
            if (value.getDomains() != null) {
                if (value.getDomains().contains(requestHost)) {
                    return value;
                }
            }
        }
        return B2CPC;//默认Host为pc
    }

    public static App parseAppId(int appId) {
        for (App value : App.values()) {
            if (value.getAppid() == appId) {
                return value;
            }
        }
        return B2CPC;//默认Host为pc
    }

    public void setAppid(int appid) {
        this.appid = appid;
    }
}
